Q: é©ï™ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈âÊëúÇâÒì]Ç≥ÇπÇÈÇΩÇflÇ…ÉOÉâÉtÉBÉbÉNÉXÉCÉìÉ|Å[É^ÇégǮǧÇΔǵǃǢNjÇ∑ÅBï`âÊÉåÉNÉ^ÉìÉOÉãÇê›íËÇ∑ÇÈÇΩÇflÇ…ÅAGraphicsImportSetMatrix ÇåƒÇ—èoǵÅAǪÇÃå„ GraphicsImportSetBoundsRect ÇåƒÇ—èoǵǃǢNjÇ∑Ç™ÅAGraphicsImportDraw ÇåƒÇ—èoǵǃLJâÊëúÇ™âÒì]ǵǃǢNjÇπÇÒÅBâΩÇ™ä‘à·Ç¡ÇƒÇ¢ÇÈÇÃÇ≈ǵÇÂǧǩÅH
A: GraphicsImportSetBoundsRect ÇÕÅAâÊëúÇÃå≥ÇÃã´äEÇÅAéwíËÇ≥ÇÍÇΩã´äEÇ…ëŒâûÇ≥ÇπÇÈÇΩÇflÇÃïœä∑çsóÒÇçÏê¨ÇµÇΩå„ÅAǪÇÃçsóÒÇê›íËǵNjÇ∑ÅBDZÇÃÇΩÇflÅAGraphicsImportSetMatrix Ç÷ÇÃç≈èâÇÃåƒÇ—èoǵDžÇÊǡǃê›íËÇ≥ÇÍÇΩçsóÒÇ™ÉäÉZÉbÉgÇ≥ÇÍÇ‹Ç∑ÅBïKóvÇ»ÇÃÇÕÅAGraphicsImportSetMatrix Ç 1 ìxåƒÇ—èoÇ∑DZÇΔÇæÇØÇ≈Ç∑ÅB
ÉäÉXÉg 1 ÇÕÅAéûåvâÒÇËÇ… 90 ìxâÒì]Ç≥ÇπÇÈÉRÅ[ÉhÇé¶ÇµÇ‹Ç∑ÅB
OSErr Rotate90(GraphicsImporterComponent inImporter)
{
Rect theNaturalBounds;
MatrixRecord theMatrix;
OSErr err;
err = GraphicsImportGetNaturalBounds(inImporter, &theNaturalBounds);
if (err) goto bail;
// Åuå¥ì_ÇíÜêSÇ…âÒì]ǵǪÇÃå„ïœä∑Ç∑ÇÈï˚Ç™
// ǫDZǙâÒì]ÇÃíÜêSÇΔǵǃìKêÿÇ©Çå©Ç¬ÇØèoÇ∑ÇÊÇËLJÇÕÇÈǩDžä»íPÅvÇΔÉuÉãÅ[ÇÕǢǧÅ@
SetIdentityMatrix(&theMatrix);
RotateMatrix(&theMatrix, Long2Fix(90), 0, 0);
TranslateMatrix(&theMatrix, Long2Fix(theNaturalBounds.bottom), 0);
err = GraphicsImportSetMatrix(inImporter, &theMatrix);
bail:
return err;
}
|
ÉäÉXÉg 1 éûåvâÒÇËÇ… 90 ìxÇÃâÒì]
|
ÉäÉXÉg 2 ÇÕÅAâÒì]Ç…èkè¨ägëÂÇí«â¡Ç∑ÇÈÉRÅ[ÉhÇé¶ÇµÇ‹Ç∑ÅB
OSErr RotateAndScale(GraphicsImporterComponent inImporter)
{
Rect theNaturalBounds;
MatrixRecord theMatrix;
OSErr err;
err = GraphicsImportGetNaturalBounds(inImporter, &theNaturalBounds);
if (err) goto bail;
SetIdentityMatrix(&theMatrix);
RotateMatrix(&theMatrix, Long2Fix(90), 0, 0);
TranslateMatrix(&theMatrix, Long2Fix(theNaturalBounds.bottom), 0);
// 50 % èkè¨
ScaleMatrix(&theMatrix, fixed1 / 2, fixed1 / 2, 0, 0);
err = GraphicsImportSetMatrix(inImporter, &theMatrix);
bail:
return err;
}
|
ÉäÉXÉg 2Å@éûåvâÒÇËÇ… 90 ìxÇÃâÒì]ÇΔ 50 % ÇÃèkè¨
|
[2002 îN 5 åé 25 ì˙]
|